---
title: clsPolicyPeriod
summary: API reference for clsPolicyPeriod.
status: draft
owner: SAIF Corporation
last_reviewed: 2026-08-21
library: SAIF.Business.View.Policy
reference_type: embedded
---

# clsPolicyPeriod

`clsPolicyPeriod` carries one policy term returned by the policy-period stored procedure and backs the term-selection helpers exposed from `clsPolicyData`. The object is populated only when `clsPolicyPeriodCollection` materializes rows from `pk72846_view_policy.getPolicyPeriods`; it does not issue its own primary retrieve, but it does lazily call `coveragelimits_pkg.getSpecificLimitsForPolicyNum` when employer-liability limits are requested.

## Purpose
- Hold the term-level values that `clsPolicyData` uses to identify the current and renewal periods under [BR-VP-018](../../business-rules.md#br-vp-018-currentrenewal-period-selection).
- Expose employer-liability limits through a separate on-demand stored-procedure call so the main policy-period fetch stays focused on the period row.
- Preserve the period dates, status, plan, payroll, and grouping values returned from `pk72846_view_policy.getPolicyPeriods` for downstream UI and business-layer decisions.

## Context
- Namespace: `SAIF.Business.View.Policy`
- Assembly/package: `SAIF.Business.View.Policy` (embedded)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `ndReimbFlag` | `Public ReadOnly Property ndReimbFlag() As String` | Indicates whether the period carries the non-disabled reimbursement flag returned with the period row. |
| `ndReimbEff` | `Public ReadOnly Property ndReimbEff() As String` | Carries the effective-date text for the non-disabled reimbursement interval on this term. |
| `ndReimbExp` | `Public ReadOnly Property ndReimbExp() As String` | Carries the expiration-date text for the non-disabled reimbursement interval on this term. |
| `ndReimbFreq` | `Public ReadOnly Property ndReimbFreq As String` | Holds the reimbursement frequency when the stored procedure supplies that newer column; otherwise the object leaves it blank.* |
| `FinancialSystemCode` | `Public ReadOnly Property FinancialSystemCode() As String` | Identifies the financial system source associated with this period row. |
| `PayrollReportFrequencyCode` | `Public ReadOnly Property PayrollReportFrequencyCode() As String` | Holds the coded payroll-reporting frequency returned for the term. |
| `PolicyPeriodExpDate` | `Public ReadOnly Property PolicyPeriodExpDate() As String` | Gives the term expiration date as returned from the policy-period result set. |
| `RatingPlanFactor` | `Public ReadOnly Property RatingPlanFactor() As Decimal` | Supplies the rating-plan factor used with this term's premium view. |
| `SarapFactor` | `Public ReadOnly Property SarapFactor() As Decimal` | Supplies the SARAP factor stored with the policy period. |
| `RiskTypeFactor` | `Public ReadOnly Property RiskTypeFactor() As Decimal` | Supplies the risk-type factor associated with the period. |
| `SetID` | `Public ReadOnly Property SetID() As Decimal` | Preserves the set identifier returned for the period row. |
| `PayrollReportFrequency` | `Public ReadOnly Property PayrollReportFrequency() As String` | Holds the display form of the payroll reporting frequency for the term. |
| `PolicySuffix` | `Public ReadOnly Property PolicySuffix() As String` | Carries the suffix used to distinguish this policy period record. |
| `PolicyPeriodStatus` | `Public ReadOnly Property PolicyPeriodStatus() As String` | Holds the status text that drives current-versus-renewal selection in [BR-VP-018](../../business-rules.md#br-vp-018-currentrenewal-period-selection). |
| `FinalEvalDate` | `Public Property FinalEvalDate() As Date` | Exposes the final evaluation date loaded with the period row for consumers that need the term's evaluation milestone. |
| `GroupChapter` | `Public ReadOnly Property GroupChapter() As String` | Carries the group chapter code tied to this policy period. |
| `GroupType` | `Public ReadOnly Property GroupType() As String` | Carries the group type returned with the policy period. |
| `GroupName` | `Public ReadOnly Property GroupName() As String` | Carries the group name associated with this term. |
| `GroupTermDate` | `Public ReadOnly Property GroupTermDate As Date` | Gives the group termination date when present; otherwise the loader falls back to `Date.MinValue`.* |
| `AnniversaryRateDate` | `Public ReadOnly Property AnniversaryRateDate() As String` | Holds the anniversary rating date for the term. |
| `RatingEffectiveDate` | `Public ReadOnly Property RatingEffectiveDate() As String` | Holds the effective date used for rating on this period. |
| `PolicyPeriodEffDate` | `Public ReadOnly Property PolicyPeriodEffDate() As String` | Gives the term effective date used by collection lookups and downstream date-based selection. |
| `PolicyNum` | `Public ReadOnly Property PolicyNum() As Decimal` | Identifies the policy that owns this term and supplies the key used by equality and lazy employer-liability retrieval. |
| `CancelDate` | `Public ReadOnly Property CancelDate() As String` | Carries the cancellation-date text returned for the term. |
| `RiskTypeCode` | `Public ReadOnly Property RiskTypeCode() As String` | Holds the coded risk type for this period. |
| `SourceSystem` | `Public ReadOnly Property SourceSystem() As String` | Identifies the source system named on the policy-period row. |
| `OtherStatesPolicyNum` | `Public ReadOnly Property OtherStatesPolicyNum As String` | Formats the linked other-states policy number when one exists. |
| `OtherStatesPolicyPeriodEffDate` | `Public ReadOnly Property OtherStatesPolicyPeriodEffDate As String` | Carries the linked other-states term effective date. |
| `OtherStatesPolicyPeriodExpDate` | `Public ReadOnly Property OtherStatesPolicyPeriodExpDate As String` | Carries the linked other-states term expiration date. |
| `PlanCode` | `Public ReadOnly Property PlanCode() As String` | Exposes the sales or coverage plan code for this term. |
| `RatingPlanCode` | `Public ReadOnly Property RatingPlanCode() As String` | Exposes the rating-plan code returned with the term. |
| `StandardPremium` | `Public ReadOnly Property StandardPremium() As Decimal` | Supplies the standard premium value stored with the period row. |
| `PeriodLength` | `Public ReadOnly Property PeriodLength() As Decimal` | Supplies the term length value returned by the period query. |
| `PrepaidFreq` | `Public ReadOnly Property PrepaidFreq() As String` | Holds the prepay-frequency indicator for the term. |
| `PaymentPlanDescr` | `Public ReadOnly Property PaymentPlanDescr() As String` | Holds the payment-plan description associated with the period. |
| `EmployerLiabStatCode` | `Public ReadOnly Property EmployerLiabStatCode() As String` | Triggers the lazy employer-liability lookup and returns the state code that qualifies the retrieved limit set. |
| `EmployerLiabLimit1` | `Public ReadOnly Property EmployerLiabLimit1() As String` | Triggers the lazy employer-liability lookup and returns the first limit value from `coveragelimits_pkg.getSpecificLimitsForPolicyNum`. |
| `EmployerLiabLimit2` | `Public ReadOnly Property EmployerLiabLimit2() As String` | Triggers the lazy employer-liability lookup and returns the second limit value from `coveragelimits_pkg.getSpecificLimitsForPolicyNum`. |
| `EmployerLiabLimit3` | `Public ReadOnly Property EmployerLiabLimit3() As String` | Triggers the lazy employer-liability lookup and returns the third limit value from `coveragelimits_pkg.getSpecificLimitsForPolicyNum`. |
| `EmployerLiabLimits` | `Public ReadOnly Property EmployerLiabLimits() As String` | Returns the three lazy-loaded employer-liability limits as a slash-delimited display string when the state code is populated. |
| `PayrollClass` | `Public ReadOnly Property PayrollClass() As String` | Holds the payroll-class value returned for the term. |
| `SortBy` | `Public Property SortBy() As String` | Preserves the sort token loaded from the result set and marks the object dirty if a caller changes it in memory.* |
| `isCurrentPolicyPeriod` | `Public ReadOnly Property isCurrentPolicyPeriod() As Boolean` | Flags the row as the current term when its period status is `Open`, matching [BR-VP-018](../../business-rules.md#br-vp-018-currentrenewal-period-selection). |
| `isRenewalPolicyPeriod` | `Public ReadOnly Property isRenewalPolicyPeriod As Boolean` | Flags the row as the renewal term when its period status is `Renew`, matching [BR-VP-018](../../business-rules.md#br-vp-018-currentrenewal-period-selection). |
| `MyCriteria` | `Public ReadOnly Property MyCriteria() As Criteria` | Exposes the criteria object that supplies data-portal context and the employer-liability procedure name to the lazy loader. |
| `IsValid` | `Public Overrides ReadOnly Property IsValid() As Boolean` | Returns the base-object validity state; this class adds no term-specific business rules of its own. |
| `IsSavable` | `Public Overrides ReadOnly Property IsSavable() As Boolean` | Returns the base-object saveability state even though the type is documented and used as a read-only projection.* |
| `IsFinalEvalDateNull` | `Public Function IsFinalEvalDateNull() As Boolean` | Reports whether the final evaluation date was left unset in the loaded row. |
| `Equals` | `Public Overloads Shared Function Equals(ByVal objA As Object, ByVal objB As Object) As Boolean` | Compares two boxed instances using the type's policy-number equality rule. |
| `Equals` | `Public Overloads Overrides Function Equals(ByVal inObject As Object) As Boolean` | Applies the policy-number equality rule to an arbitrary object. |
| `Equals` | `Public Overloads Function Equals(ByVal inObject As clsPolicyPeriod) As Boolean` | Treats two period objects as equal when they carry the same policy number.* |
| `GetHashCode` | `Public Overrides Function GetHashCode() As Integer` | Produces a hash based on the policy number used by the equality implementation. |
| `ToString` | `Public Overrides Function ToString() As String` | Returns the policy number as the compact string representation for this period row. |
| `PolicyNum` | `Public Property PolicyNum() As Decimal` | Stores the policy number inside the nested criteria object used by the data portal. |
| `GetSpecificELCBLimitsSQL` | `Friend ReadOnly Property GetSpecificELCBLimitsSQL() As String` | Names the stored procedure that the lazy employer-liability fetch executes. |
| `RetrieveSQL` | `Friend ReadOnly Property RetrieveSQL() As String` | Returns an empty string because standalone retrieval is intentionally disabled and periods are loaded only through the collection.* |

## Behavioral notes
- `clsPolicyPeriodCollection.AfterRetrieve` creates each `clsPolicyPeriod` from the reader returned by `pk72846_view_policy.getPolicyPeriods`, then `clsPolicyData` scans those objects to locate the current or renewal term under [BR-VP-018](../../business-rules.md#br-vp-018-currentrenewal-period-selection).
- `RetrieveEmployerLiabLimits` runs once per instance, caches the result fields, and uses the current period effective date plus policy number when calling `coveragelimits_pkg.getSpecificLimitsForPolicyNum`.
- `GetLatestPolicyPeriodInfoPagePrinted` lives on `clsPolicyData`, but it depends on these period objects being ordered so the first renewal/current match encountered represents the latest relevant printable term for [BR-VP-019](../../business-rules.md#br-vp-019-latest-printed-information-page-period).* 

## Constraints and usage notes
- This type is read-only in practice: its nested criteria returns empty SQL for create/insert/update/delete, consistent with [BR-VP-027](../../business-rules.md#br-vp-027-createinsertupdatedelete-sql-are-invalid).
- Because equality uses only `PolicyNum`, two term objects for the same policy are treated as equal even if they represent different effective dates.*
- Omit inherited-member documentation here because the base type is external (`clsBusinessBase`) and not part of this embedded-library API set.

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.

## Sources
- `SAIF.Business.View.Policy/clsPolicyPeriod.vb`
- `SAIF.Business.View.Policy/clsPolicyData.vb`
